<?php
require_once '../core/app_global_vars.php';
/*Definicion del diccionario de los datos remplazables en el template*/
$diccionario=array(
    #Definicion de Subtitulos para las vistas referenciado por la **constante vista
    'subtitle'=>array( VIEW_LOG_USER=>'Login de Usuario',
                       VIEW_SET_USER=>'Buscar Usuario',
                       VIEW_GET_USER=>'Buscar Usuario',
                       VIEW_DELETE_USER=>'Borrar Usuario',
                       VIEW_EDIT_USER=>'Editar Usuario',
                       VIEW_LIST_USER=>'Listar Usuario'),
    #Definicion de direccion de accion de formulario*/
    'form_action'=>array('LOG'=>'/STControlEquipo/'.MODULO.LOGD_USER.'/',
                        'SET'=>'/STControlEquipo/'.MODULO.SET_USER.'/',
                        'GET'=>'/STControlEquipo/'.MODULO.GET_USER.'/',
                        'EDIT'=>'/STControlEquipo/'.MODULO.EDIT_USER.'/',
                        'DELETE'=>'/STControlEquipo/'.MODULO.DELETE_USER.'/'),
    'title_form'=>array( VIEW_LIST_ARTICULO=>'Listado de Usuarios')
    );

$mihtml;

/*obtiene el contenido del archivo template $form toma valor default si no se le asigna*/ 
function get_template($form='get'){
    $file='../site_media/html/usuario_'.$form.'.html';
    $template=  file_get_contents($file);
    return $template;
}
function get_apptemplate($form=''){
    $file='../site_media/html/application_'.$form.'.html';
    $template=  file_get_contents($file);
    return $template;
}
/*remplaza los datos dinamicos en la plantilla desde el array diccionario seleccionado*/
function render_dinamic_data($html,$data){
    foreach ($data as $clave => $valor) {
        
        $html=  str_replace('{'.$clave.'}', $valor, $html);
    }
    return $html;
}
#funcion auxiliar para el recorrido del array como tabla
function recorre_basic($array){
    global $mihtml;
    foreach ($array as $key => $value) {
        if(is_array($value)){
            if(empty($mihtml))$mihtml='<tr>';
            else $mihtml.='<tr>';
            recorre($value);
            $mihtml.='</tr>';
          }
          else{
              if(strpos($key,'nId')!==false){
                 $mihtml.= '<td class="resulsetradio"><input type="radio" name="rad_'.strtolower($key).'" value="'.$value.'" />';
              }
              $mihtml.='<td>'.$value.'</td>';
          }
    }
}
function recorre($array){
    global $mihtml;
    foreach ($array as $key => $value) {
        if(is_array($value)){
            if(empty($mihtml))$mihtml='<tr>';
            else $mihtml.='<tr>';
            recorre($value);
            $mihtml.='</tr>';
          }
          else{
              if(strpos($key,'nId')!==false){
                  /*para nombrado unico de radio con nombre del articulo*/
                 $mihtml.= 
                           '<td class="resulsetradio"><input type="radio" id="rad_'.strtolower($key).$value.'"  name="rad_'.strtolower($key).'" value="'.$value.'" />
                               <label for="rad_'.strtolower($key).$value.'">'.$array["sAcceso"].'</label> 
                           </td>';
              }else
                  {
                    if(strpos($key,'sAcce')!==false){}/*omision de la descripcion por q ya aparece en la etiqueta del radio*/
                    else $mihtml.='<td>'.$value.'</td>';
                  }
          }
    }
}
#funcion auxiliar establece los datos como una tabla de elementos seleccionables
function render_as_table_basic($html,$data){
    global $mihtml;
    if(empty($mihtml))$mihtml='';
    $mihtml='<thead><tr><td></td>';
    foreach ($data[0] as $key => $value) {
        $mihtml.='<td>'.$key.'</td>';
    }
    $mihtml.='</tr></thead>';
    recorre($data);
    $html=  str_replace('{resultset}', $mihtml, $html);
    $mihtml="";
    return $html;
}
function render_as_table($html,$data,$index=''){
    #en caso de q se llame desde un ciclo el primer resultset se remplazara asi
    if($index==0)$index='';
    global $mihtml;
    if(empty($mihtml))$mihtml='';
    $mihtml='<thead><tr><th></th>';
    $count=1;
    foreach ($data[0] as $key => $value) {
        if($count==1||$count==2){}
        else $mihtml.='<th>'.$key.'</th>';
        $count++;
    }
    $mihtml.='</tr></thead>';
    recorre($data);
    $html=  str_replace('{resultset'.$index.'}', $mihtml, $html);
    $mihtml="";
    return $html;
}

function return_view($vista,$data=array()){
    global $diccionario;
    global $global_dictionary;
    $resultset=array();
    #obtiene el html del template general
    $html=  get_template('template');
    #remplaza el subtitulo en el template general basado en el nombre de la vista
    $html=  str_replace('{subtitulo}', $diccionario['subtitle'][$vista],$html);
    
    #si se recibe tambien un resultset ademas de los datos basicos de la interfaz
    if(array_key_exists('resultset', $data) && array_key_exists('data', $data)){
        $resultset=$data['resultset'];
        $data=$data['data'];
    }
    
    #si no es la pagina del login remplaza el menu segun el rol del usuario
    if($vista==VIEW_LOG_USER)
    {
        $html=str_replace('{menu}',' ',$html);
    }
    else {
        if(!isset($_SESSION)) {session_start();}
        if($_SESSION['Registered']==1)
            $html=  str_replace('{menu}',  get_apptemplate('adm_menu'),$html);
        else
            $html=  str_replace('{menu}',  get_apptemplate('menu'),$html);
    }
    
    #remplaza el formulario segun la vista
    $html=  str_replace('{formulario}', get_template($vista),$html);
    #remplaza el titulo del formulario
    if(array_key_exists($vista, $diccionario['title_form'])){
    $html=  str_replace('{titulo_form}', $diccionario['title_form'][$vista],$html);}
    else{
        $html=  str_replace('{titulo_form}','',$html);
    }
    #remplaza la accion del formulario cargado
    $html=  render_dinamic_data($html, $diccionario['form_action']);
    #remplaza los links del menu *si existe
    $html=  render_dinamic_data($html, $global_dictionary['links_menu']);
    #remplaza los datos para el formulario si existen //
    $html=  render_dinamic_data($html,$data);
    
    #render del mensaje
    if(array_key_exists('mensaje', $data)) $mensaje=$data['mensaje'];
    else $mensaje='';
    $html=  str_replace('{mensaje}',$mensaje,$html);
    
    #set view user if ingresed
    if(array_key_exists('tbx_sacceso', $data)) $username=$data['tbx_sacceso'];
    else $username='';
    $html=  str_replace('{val_sacceso}',$username,$html);
    
    #render resultset si existe
    if(!empty($resultset)){
        $html= render_as_table($html,$resultset);
    }
    
    if($vista==VIEW_EDIT_USER){
        if(array_key_exists('sAcceso', $data)) $tmpdata=$data['sAcceso'];
        else $tmpdata='';
        $html=  str_replace('{val_nidacceso}',$tmpdata,$html);
        
        if(array_key_exists('sPassword', $data)) $tmpdata=$data['sPassword'];
        else $tmpdata='';
        $html=  str_replace('{val_spassword}',$tmpdata,$html);
        
        if(array_key_exists('bAdministrador', $data)){
            if($data['bAdministrador']==1)
            $tmpdata='<input type="checkbox" id="chbx_badministrador"  name="chbx_badministrador" value="1" checked="checked"/>';
            else
            $tmpdata='<input type="checkbox"  id="chbx_badministrador" name="chbx_badministrador" value="0" />';
            
            $html=  str_replace('{val_badministrador}',$tmpdata,$html);
        }
        
        if(array_key_exists('bActivo', $data)){
            if($data['bActivo']==1)
            $tmpdata='<input type="checkbox" id="chbx_bactivo" name="chbx_bactivo" value="1" checked="checked"/>';
            else
            $tmpdata='<input type="checkbox" id="chbx_bactivo"  name="chbx_bactivo" value="0" />';
            
            $html=  str_replace('{val_bactivo}',$tmpdata,$html);
        }
        
        if(array_key_exists('dUltimoAcceso', $data)) $tmpdata=$data['dUltimoAcceso'];
        else $tmpdata='';
        $html=  str_replace('{val_dultimoacceso}',$tmpdata,$html);
        
        if(array_key_exists('nIdUsuario', $data)) $tmpdata=$data['nIdUsuario'];
        else $tmpdata='';
        $html=  str_replace('{val_nidusuario}',$tmpdata,$html);
    }
    
    print $html;
}

?>